package com.gqz.equip.app.service.impl;

import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.gqz.equip.app.entity.AppQxyhEnWzJfglEntity;
import com.gqz.equip.app.entity.EnWzKfglEntity;
import com.gqz.equip.app.mapper.AppQxyhEnWzJfglMapper;
import com.gqz.equip.app.mapper.EnWzKfglMapper;
import com.gqz.equip.app.service.IAppEquipStoreService;
import com.gqz.equip.vo.AppEquipStoreVo;
import com.gqz.equip.vo.AppJfStoreVo;
import com.gqz.equip.vo.AppKfStoreVo;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Description: 设备存储库信息查询-业务实现
 */
@Service("appEquipStoreService")
public class AppEquipStoreServiceImpl implements IAppEquipStoreService {

    @Resource(description = "机房信息交互")
    private AppQxyhEnWzJfglMapper jfglMapper;

    @Resource(description = "库房信息交互")
    private EnWzKfglMapper kfglMapper;

    /**
     * @description: 查询设备存储库关键信息
     */
    @Override
    public AppEquipStoreVo queryEquipStoreKeyInfoList() {
        // 构造返回值
        MPJLambdaWrapper<AppQxyhEnWzJfglEntity> jfWrapper = new MPJLambdaWrapper<AppQxyhEnWzJfglEntity>()
                .selectAs(AppQxyhEnWzJfglEntity::getId, AppJfStoreVo::getJfNo)
                .select(AppQxyhEnWzJfglEntity::getJfName);
        MPJLambdaWrapper<EnWzKfglEntity> kfWrapper = new MPJLambdaWrapper<EnWzKfglEntity>()
                .selectAs(EnWzKfglEntity::getId, AppKfStoreVo::getKfNo)
                .select(EnWzKfglEntity::getKfName);

        // 查询信息
        List<AppJfStoreVo> jfVoList = jfglMapper.selectJoinList(AppJfStoreVo.class, jfWrapper);
        List<AppKfStoreVo> kfVoList = kfglMapper.selectJoinList(AppKfStoreVo.class, kfWrapper);

        // 赋值并返回
        return new AppEquipStoreVo().setJf(jfVoList).setKf(kfVoList);
    }
}
